package data;

import java.sql.*;
import java.util.*;
import utils.Transacao;

public class FuncionarioData {


    public void incluir(FuncionarioDO funcionario, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "insert into Funcionario (Nome, Funcao, Contato) values (?, ?, ?)";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setString(1, funcionario.getNome());
     ps.setString(2, funcionario.getFuncao());
     ps.setInt(3, funcionario.getContato());
     int result = ps.executeUpdate();
    }

    public void excluir(FuncionarioDO funcionario, Transacao tr) throws Exception {
        excluir(funcionario.getidFuncionario(), tr);
    }

    public void excluir(int idobj, Transacao tr) throws Exception {
        Connection con = tr.obterConexao();
        String sql = "delete from Agenda where id=?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setInt(1, idobj);
        int result = ps.executeUpdate();
    }

    public void atualizar(FuncionarioDO funcionario, Transacao tr) throws Exception {
        Connection con = tr.obterConexao();
        String sql = "update Funcionario set Nome=?, Funcao=?, Contato=? where idFuncionario=?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, funcionario.getNome());
        ps.setString(2, funcionario.getFuncao());
	ps.setInt(3, funcionario.getidFuncionario());
        int result = ps.executeUpdate();
    }

    public void atualizarcord(FuncionarioDO funcionario, Transacao tr) throws Exception {
        Connection con = tr.obterConexao();
        String sql = "update Funcionario set idGerente=? where idFuncionario=?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setInt(1, funcionario.getidGerente());
        int result = ps.executeUpdate();
    }
    
    
    
    public FuncionarioDO buscar(int idobj, Transacao tr) throws Exception {
        Connection con = tr.obterConexao();
        String sql = "select * from funcionario where idFuncionario=?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setInt(1, idobj);
        ResultSet rs = ps.executeQuery();
        rs.next();
        FuncionarioDO funcionario = new FuncionarioDO();
        funcionario.setidFuncionario (rs.getInt("idFuncionario"));
        funcionario.setNome (rs.getString("Nome"));
        funcionario.setFuncao(rs.getString("Funcao"));
        funcionario.setContato(rs.getInt("Contato"));
        return funcionario ;
    }

    public Vector pesquisarPorNome(String nome, Transacao tr) throws Exception {
        Connection con = tr.obterConexao();
        String sql = "select * from Funcionario where Nome like ?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, nome);
        ResultSet rs = ps.executeQuery();
        System.out.println("query executada");
        Vector contatos = new Vector();
        while (rs.next()) {
           FuncionarioDO c = new FuncionarioDO();
           c.setidFuncionario (rs.getInt("idFuncionario"));
           c.setNome (rs.getString("Nome"));
           System.out.println(" got " + c.getNome());
           c.setFuncao(rs.getString("Funcao"));
           contatos.add(c);
        }
        return contatos;
    }
}
